<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    // 继承使用关键字：extends
    class Animal {
        constructor(name) {
            this.name = name;
        }
        set name(name) {
            this._name = name;
        }
        get name() {
            return this._name;
        }
        walk() {
            console.log(this._name + "正在走路");
        }
    }
    // Cat继承Animal
    class Cat extends Animal {
        mew() {
            console.log(this._name + "正在叫");
        }
    }
    // 创建类
    var smallCat = new Cat("小猫");
    var bigCat = new Cat("大猫");
    smallCat.walk(); // 小猫正在走路
    smallCat.mew(); // 小猫正在叫
    bigCat.walk(); // 大猫正在走路
    bigCat.mew(); // 大猫正在叫

    // 调用父类的方法：在构造器和其他方法中
    class Dog extends Animal {
        constructor(name, color) {
            super(name);
            this.color = color;
        }
        set color(color) {
            this._color = color;
        }
        get color() {
            return this._color;
        }
        // Overrides method 'walk' in Animal
        walk(){
            super.walk();
            console.log(", 静悄悄地");
        }
        mew() {
            console.log(this._color + "色的" + this._name + "正在叫");
        }
    }
    var smallDog = new Dog("小狗", "红");
    var bigDog = new Dog("大狗", "黄");
    smallDog.walk(); // 小狗正在走路 , 静悄悄地
    smallDog.mew(); // 红色的小狗正在叫
    bigDog.walk();
    bigDog.mew();
</script>
</body>
</html>